package com.tgy.algorithm.base._贪心;

import java.util.ArrayList;
import java.util.List;

/**
 * 给定一个字符串st，只由X和.两种字符构成。X'表示墙，不能放灯，也不需要点亮，
 * 表示居民点，可以放灯，需要点亮如果灯放在i位置，可以让i-1，i和i+1三个位置被点亮返回如果点亮str中所有需要点亮的位置，
 * 至少需要几盏灯
 *
 * ...X..X....X..
 * 只考虑当前位置
 * 1.当前位置是 X。不放灯
 * 2.当前位置是 ., 看下一个位置
 *  - 如果下一个位置是X,则在当前位置放灯，跳转到下下一个位置
 *  - 如果下一个位置是.,则看下下一个位置，无论下下位置是点或者X,都在当前位置的下一个位置放灯，
 *
 *
 */
public class _点灯问题 {

    public static List<Integer> getMinLightCount(String content) {
        if (content == null || content.length() == 0){
            return null;
        }
        char[] charArray = content.toCharArray();
        int count = 0;
        List<Integer> locations = new ArrayList<>();
        int len = charArray.length;
        int index = 0;
        while (true) {
            if (index >= len) {
                break;
            }

            char ch = charArray[index];
            if (ch == 'X') {
                index++;
            }else {
                // 当前是 .
                index++;
                if (index >= len) {
                    break;
                }
                if (charArray[index] == 'X') {
//                    count++;
                    locations.add(index - 1);
                    index++;
                }else {
//                    count++;
                    locations.add(index);
                    index = index + 2;
                }
            }
        }

        return locations;
    }

    public static boolean checkLocations(List<Integer> locations, String content) {

        if (content == null || locations == null || locations.size() == 0) {
            return false;
        }

        char[] chars = content.toCharArray();

        for (int i = 0; i < chars.length; i++) {

            char aChar = chars[i];
            if (aChar == '.') {
                int proIndex = i - 1;
                int postIndex = i + 1;
                boolean isCheckPro =  proIndex >= 0  && chars[proIndex] != 'X';
                boolean isCheckPost = i < chars.length && chars[postIndex] != 'X';

            }


        }


        return true;
    }

    public static void main(String[] args) {
        String content = "...X..X....X..";
        List<Integer> locs = getMinLightCount(content);
        System.out.println(locs);
    }
}
